import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // 容器的状态实现了数据共享，在组件里面访问方便，但是没有持久化的功能
  state: {
    tagsStoreList: [],
    token: window.localStorage.getItem('token') || '',
    user: JSON.parse(window.localStorage.getItem('user')) || 'null',
    expires_in: window.localStorage.getItem('expire_in') || 0
    // user: null // 当前登录用户状态
  },
  mutations: {
    // 修改容器数据必须使用 mutation 函数
    setUser(state, payload) {
      state.user = payload

      // 为了防止页面刷新数据丢失，我们需要把 user 数据持久化
      // 注意：本地存储只能存字符串
      window.localStorage.setItem('user', JSON.stringify(payload))
    },
    setToken(state, payload) {
      state.token = payload
      window.localStorage.setItem('token', payload)
    },
    setExpire_In(state, payload) {
      state.expires_in = payload
      window.localStorage.setItem('expire_in', payload)
    },
    saveTagsData(state, data) {
      state.tagsStoreList = data
      sessionStorage.setItem('Tags', data)
    }
  },
  actions: {
  },
  modules: {
  }
})
